Extensible markup language (“XML”) is a markup language that allows information to be shared between different systems and applications. XML provides a facility to describe and apply a hierarchical structure to information. The processing of XML data requires an XML parser, which generally parses the entire XML document or a portion of the document. While parsing, an XML parser extracts the data out of a textual representation. In other words, an XML parser takes as input a raw serialized bytestream and performs various operations on the bytestream. For example, the XML parser can create new data structures or events from the raw serialized bytestream.
An XML parser also checks the well-formedness of the XML data. For example, the XML parser determines if start tags have matching end tags. XML parsers also validate an XML document to ensure that the document conforms to a Document Type Definition or a XML schema.
One concern with XML parsers is the efficiency and speed of the parsing. For example, inefficient parsing can result in excessive memory usage and processing times. One problem with current XML parsing techniques is that only a single XML parser can parse an XML document. The XML document may include data that can be parsed faster and more efficiently by one parser as compared to another. However, because current parsing techniques do not allow for the joint parsing of an XML document, a general parser is usually selected to parse the data. The general parser in most situations does not parse particular data as fast and as efficiently as a parser written specifically for the particular data.
Therefore a need exists to overcome the problems with the prior art as discussed above.